package org.openstreetmap.josm.plugins.geojson;
import static org.openstreetmap.josm.tools.I18n.tr;
import java.io.File;
import java.io.IOException;
import org.geojson.GeoJsonObject;
import org.openstreetmap.josm.Main;
import org.openstreetmap.josm.actions.ExtensionFileFilter;
import org.openstreetmap.josm.gui.progress.ProgressMonitor;
import org.openstreetmap.josm.io.FileImporter;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class GeoJsonFileImporter extends FileImporter {
public GeoJsonFileImporter() {
super(new ExtensionFileFilter("geojson,json", "geojson", tr("GeoJSON file") + " (*.geojson,*.json)"));
}
@Override
public void importData(File file, ProgressMonitor progressMonitor) {
GeoJsonObject object = null;
System.out.println("Parsing GeoJSON: " + file.getAbsolutePath());
try {
object = new ObjectMapper().readValue(file, GeoJsonObject.class);
System.out.println("Found: " + object.getClass());
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
GeoJsonLayer layer = new GeoJsonLayer("GeoJSON: " + file.getName(), object);
Main.main.addLayer(layer);
System.out.println("Added layer.");
}
}